package com.gok.kanmeituyun2;

import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.gok.kanmeituyun2.activity.BaseActivity;
import com.gok.kanmeituyun2.activity.DetailsActivity;
import com.gok.kanmeituyun2.activity.LoginActivity;
import com.gok.kanmeituyun2.adatper.ImageAdapter;
import com.gok.kanmeituyun2.entity.Image;

import java.util.ArrayList;
import java.util.List;

/**
 * @Company 工商学院
 * @Classname
 * @Description TODO 主活动
 * @Author wbs
 * Date 2021.6.18 10:01
 * Version 1.0
 */
public class MainActivity extends BaseActivity implements View.OnClickListener {
    private Button btnLogout;
    private RecyclerView rv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();

        //1.准备数据
        List<Image> datas = new ArrayList<>();
        for (int i = 1; i < 20; i++) {
            datas.add(new Image(String.format("http://dev-courses-misuc.ixuea.com/quick-android/%d.jpg", i)));
        }
        //2.准备适配器
        ImageAdapter adapter = new ImageAdapter(this);
        adapter.setData(datas);
        //3.将适配器设置到组件
        rv.setAdapter(adapter);

        //实现点击RecyclerView的数据项的事件
        adapter.setOnItemClickListener(new ImageAdapter.OnItemClickListener() {
            @Override
            public void onClick(int position) {
                Image image = datas.get(position);

                //意图传参
                Intent intent = new Intent(MainActivity.this, DetailsActivity.class);
                intent.putExtra("img_id", image.getUrl());

                //开启显示详情的活动
                startActivity(intent);
            }
        });
    }

    /**
     * @return void
     * @methodName TODO init
     * @author wbs
     * @date 2021.6.18 15:50
     */
    private void init() {
        btnLogout = findViewById(R.id.btnLogout);
        rv = findViewById(R.id.rv);
        rv.setHasFixedSize(true);//增加用户体验
        btnLogout.setOnClickListener(this);

        //显示2列，我们这里实现的是每个图片的宽高都是一样
        //最好的效果其实是根据图片高度和宽度来缩放
        //因为每一张图片大小不一样
        //但这样实现涉及到的知识点很多

        //这里使用了GridLayoutManager
        //他会显示类似9宫格布局效果

        //如果要做水平方向显示图片个数 要自适应设备的物理尺寸
        //定义每一个图片显示大小
   /*     int imageWidth = 100;
        int maxWidth = 函数取得设备物理尺寸;
        int column = maxWidth % imageWidth;
        */
        //网格布局管理器
        GridLayoutManager gl = new GridLayoutManager(this, 2);
        rv.setLayoutManager(gl);
    }

    /**
     * @param v
     * @return void
     * @methodName TODO 退出方法
     * @author wbs
     * @date 2021.6.18 15:49
     */
    @Override
    public void onClick(View v) {
        //清空登录状态
        sp.writeLoginStatus(false);
        //清空内存文件
        sp.writeToSharedPreferences("", "");
        //活动跳转
        startActivity(new Intent(MainActivity.this, LoginActivity.class));
        finish();
    }
}